package swing.swing04;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JProgressTest {

    JFrame jf=new JFrame("测试进度条");

    JCheckBox indeterminate=new JCheckBox("不确定进度");
    JCheckBox noBorder=new JCheckBox("不绘制边框");

    //创建进度条
    JProgressBar bar=new JProgressBar(JProgressBar.HORIZONTAL,0,100);

    public void init(){

        indeterminate.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e){
                // 获取一下indeterminate复选框有没有选中
                boolean selected = indeterminate.isSelected();

                // 是否设置成不确定边框
                bar.setIndeterminate(selected);
                // 是否设置百分比
                bar.setStringPainted(!selected);
            }
        });

        noBorder.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e){
                // 获取一下noBorder复选框有没有选中
                boolean selected = noBorder.isSelected();
                bar.setBorderPainted(!selected);
            }
        });

        Box vBox=Box.createVerticalBox();

        vBox.add(indeterminate);
        vBox.add(noBorder);

        //设置进度条的属性
        bar.setStringPainted(true);
        bar.setBorderPainted(true);

        // 把当前窗口的布局方式修改为FlowLayout
        jf.setLayout(new FlowLayout());
        jf.add(vBox);
        jf.add(bar);

//        //通过循环模拟修改进度条的进度  这段代码必须放在下面
//        for(int i=0;i<=100;i++){
//            //修改百分比
//            bar.setValue(i);
//            try {
//                Thread.sleep(500);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }


        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.pack();
        jf.setVisible(true);


        //通过循环模拟修改进度条的进度
        for(int i=0;i<=100;i++){
            //修改百分比
            bar.setValue(i);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }


    }

    public static void main(String[] args){
        JProgressTest jpt=new JProgressTest();
        jpt.init();
    }
}
